`include "instructions.vh"
module instruction_decoder2(i, i_instr_class, read_rn, rn_sel, read_rd, rd_sel, rd_sel_usr, read_rs, rs_sel, read_rm, rm_sel, read_nzcv, read_spsr, gpr_we0, gpr_wa0, gpr_wa0_exc, gpr_dsel0_ex1, gpr_dsel0_ex2, gpr_dsel0_ex3, gpr_dsel0_wb, gpr_we1, gpr_wa1, gpr_wa1_usr, gpr_dsel1, cpsr_nzcv_we, cpsr_nzcv_dsel, cpsr_aif_we, cpsr_aif_dsel, cpsr_aif_d_imm, cpsr_mode_we, cpsr_mode_dsel, cpsr_mode_d_imm, cpsr_priv, spsr_we, spsr_dsel, ls, ls_store, ls_addr_offset_sel, ls_addr_sel, ls_part, ls_half, ls_ld_sign_ext, ls_double, lsm, branch_ex1, branch_ex1_dest_sel, branch_ex1_dest_imm, branch_wb, branch_wb_dest_sel, mul, mul_long, mul_sign, mul_add, ext_rot, ext_op, ext_sign, ext_add, coproc_sel, coproc_cp_num, coproc_op1, coproc_op2, coproc_crn, coproc_crm);
/* verilator lint_off UNUSED */ input [31:0] i; /* verilator lint_on UNUSED */
input [`NUM_INSTR-1:0] i_instr_class;
output reg       read_rn;
output reg [3:0] rn_sel;
output reg       read_rd;
output reg [3:0] rd_sel;
output reg       rd_sel_usr;
output reg       read_rs;
output reg [3:0] rs_sel;
output reg       read_rm;
output reg [3:0] rm_sel;
output reg       read_nzcv;
output reg       read_spsr;
output reg       gpr_we0;
output reg [3:0] gpr_wa0;
output reg       gpr_wa0_exc;
output reg       gpr_dsel0_ex1;
output reg [1:0] gpr_dsel0_ex2;
output reg [1:0] gpr_dsel0_ex3;
output reg [1:0] gpr_dsel0_wb;
output reg       gpr_we1;
output reg [3:0] gpr_wa1;
output reg       gpr_wa1_usr;
output reg       gpr_dsel1;
output reg       cpsr_nzcv_we;
output reg [1:0] cpsr_nzcv_dsel;
output reg [2:0] cpsr_aif_we;
output reg [1:0] cpsr_aif_dsel;
output reg [2:0] cpsr_aif_d_imm;
output reg       cpsr_mode_we;
output reg [1:0] cpsr_mode_dsel;
output reg [4:0] cpsr_mode_d_imm;
output reg       cpsr_priv;
output reg       spsr_we;
output reg       spsr_dsel;
output reg       ls;
output reg       ls_store;
output reg [2:0] ls_addr_offset_sel;
output reg [1:0] ls_addr_sel;
output reg       ls_part;
output reg       ls_half;
output reg       ls_ld_sign_ext;
output reg       ls_double;
output reg       lsm;
output reg       branch_ex1;
output reg [1:0] branch_ex1_dest_sel;
output reg [2:0] branch_ex1_dest_imm;
output reg       branch_wb;
output reg       branch_wb_dest_sel;
output reg       mul;
output reg       mul_long;
output reg       mul_sign;
output reg       mul_add;
output reg [1:0] ext_rot;
output reg [1:0] ext_op;
output reg       ext_sign;
output reg       ext_add;
output reg       coproc_sel;
output reg       coproc_cp_num;
output reg       coproc_op1;
output reg       coproc_op2;
output reg       coproc_crn;
output reg       coproc_crm;
`include "instruction_decoder2_helper.vh"
always @* begin
  case (1'b1)
    i_instr_class[`INSTR_DP]: begin
      read_rn = 1'b1;
      rn_sel = i[19:16];
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = ~i[25] & i[4];
      rs_sel = i[11:8];
      read_rm = ~i[25];
      rm_sel = i[3:0];
      read_nzcv = i[24:21] == 4'b0101 | i[24:21] == 4'b0110 | i[24:21] == 4'b0111 | i[20];
      read_spsr = i[20] & &i[15:12];
      gpr_we0 = i[24:21][3:2] != 2'b10;
      gpr_wa0 = i[15:12];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = 2'bx;
      gpr_dsel0_wb = GPR_DSEL0_WB_ALU;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = i[20];
      cpsr_nzcv_dsel = &i[15:12] ? NZCV_DSEL_SPSR : NZCV_DSEL_ALU;
      cpsr_aif_we = {3{i[20] & &i[15:12]}};
      cpsr_aif_dsel = AIF_DSEL_SPSR;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = i[20] & &i[15:12];
      cpsr_mode_dsel = MODE_DSEL_SPSR;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'b0;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = &i[15:12];
      branch_wb_dest_sel = 1'b0;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_LS]: begin
      read_rn = 1'b1;
      rn_sel = i[19:16];
      read_rd = ~i[20];
      rd_sel = i[15:12];
      rd_sel_usr = 1'b0;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = i[25];
      rm_sel = i[3:0];
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = ls_pre | ls_post;
      gpr_wa0 = i[19:16];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_ADDR;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = i[20];
      gpr_wa1 = i[15:12];
      gpr_wa1_usr = 1'b0;
      gpr_dsel1 = GPR_DSEL1_LD;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b1;
      ls_store = ~i[20];
      ls_addr_offset_sel = i[25] ? ADDR_OFF_SEL_ISH : ADDR_OFF_SEL_IMM;
      ls_addr_sel = ls_post ? ADDR_SEL_RN : ADDR_SEL_WB;
      ls_part = i[22];
      ls_half = 1'b0;
      ls_ld_sign_ext = 1'b0;
      ls_double = 1'b0;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = i[20] & &i[15:12];
      branch_wb_dest_sel = 1'b1;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_LSX]: begin
      read_rn = 1'b1;
      rn_sel = i[19:16];
      read_rd = lsx_strh | lsx_strd;
      rd_sel = i[15:12];
      rd_sel_usr = 1'b0;
      read_rs = lsx_strd;
      rs_sel = i[15:12] | 4'b1;
      read_rm = ~i[22];
      rm_sel = i[3:0];
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = ls_pre | ls_post;
      gpr_wa0 = i[19:16];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_ADDR;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = lsx_ldrh | lsx_ldrsb | lsx_ldrsh | lsx_ldrd;
      gpr_wa1 = i[15:12];
      gpr_wa1_usr = 1'b0;
      gpr_dsel1 = GPR_DSEL1_LD;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b1;
      ls_store = lsx_strh | lsx_strd;
      ls_addr_offset_sel = i[22] ? ADDR_OFF_SEL_IMM8 : ADDR_OFF_SEL_RM;
      ls_addr_sel = ls_post ? ADDR_SEL_RN : ADDR_SEL_WB;
      ls_part = lsx_ldrsb | lsx_ldrh | lsx_ldrsh | lsx_strh;
      ls_half = lsx_ldrh | lsx_ldrsh | lsx_strh;
      ls_ld_sign_ext = lsx_ldrsb | lsx_ldrsh;
      ls_double = lsx_ldrd | lsx_strd;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_LSM]: begin
      read_rn = 1'b1;
      rn_sel = i[19:16];
      read_rd = ~i[20];
      rd_sel = lsm_rd_sel;
      rd_sel_usr = i[22];
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = i[21];
      gpr_wa0 = i[19:16];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_ADDR;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = i[20];
      gpr_wa1 = lsm_rd_sel;
      gpr_wa1_usr = i[22] & ~i[15];
      gpr_dsel1 = GPR_DSEL1_LD;
      cpsr_nzcv_we = lsm_restore_cpsr;
      cpsr_nzcv_dsel = NZCV_DSEL_SPSR;
      cpsr_aif_we = {3{lsm_restore_cpsr}};
      cpsr_aif_dsel = AIF_DSEL_SPSR;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = lsm_restore_cpsr;
      cpsr_mode_dsel = MODE_DSEL_SPSR;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'b0;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b1;
      ls_store = ~i[20];
      ls_addr_offset_sel = ADDR_OFF_SEL_LSM;
      ls_addr_sel = ADDR_SEL_LSM;
      ls_part = 1'b0;
      ls_half = 1'b0;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'b0;
      lsm = 1'b1;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = i[20] & i[15];
      branch_wb_dest_sel = 1'b1;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_B]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = i[24];
      gpr_wa0 = 4'b1110;
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = GPR_DSEL0_EX1_BL;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_PREV;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b1;
      branch_ex1_dest_sel = BR_DEST_EX1_SEL_OFF;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_BX]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b1;
      rm_sel = i[3:0];
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = i[5];
      gpr_wa0 = 4'b1110;
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = GPR_DSEL0_EX1_BL;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_PREV;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b1;
      branch_ex1_dest_sel = BR_DEST_EX1_SEL_RM;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_MUL]: begin
      read_rn = i[21] & i[23];
      rn_sel = i[19:16];
      read_rd = i[21];
      rd_sel = i[15:12];
      rd_sel_usr = 1'b0;
      read_rs = 1'b1;
      rs_sel = i[11:8];
      read_rm = 1'b1;
      rm_sel = i[3:0];
      read_nzcv = i[20];
      read_spsr = 1'b0;
      gpr_we0 = 1'b1;
      gpr_wa0 = mul_gpr_wsel0;
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = 2'bx;
      gpr_dsel0_wb = GPR_DSEL0_WB_MUL;
      gpr_we1 = i[23];
      gpr_wa1 = mul_gpr_wsel1;
      gpr_wa1_usr = 1'b0;
      gpr_dsel1 = GPR_DSEL1_MUL;
      cpsr_nzcv_we = i[20];
      cpsr_nzcv_dsel = NZCV_DSEL_MUL;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b1;
      mul_long = i[23];
      mul_sign = i[22];
      mul_add = i[21];
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_EXT]: begin
      read_rn = ~&i[19:16];
      rn_sel = i[19:16];
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b1;
      rm_sel = i[3:0];
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = 1'b1;
      gpr_wa0 = i[15:12];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = &i[19:16] ? GPR_DSEL0_EX3_EXT : 2'bx;
      gpr_dsel0_wb = &i[19:16] ? GPR_DSEL0_WB_PREV : GPR_DSEL0_WB_EXTA;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = i[11:10];
      ext_op = i[21:20];
      ext_sign = ~i[22];
      ext_add = ~&i[19:16];
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_MSR]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = ~i[25];
      rm_sel = i[3:0];
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = 1'b0;
      gpr_wa0 = 4'bx;
      gpr_wa0_exc = 1'bx;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = 2'bx;
      gpr_dsel0_wb = 2'bx;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = ~i[22] & i[19];
      cpsr_nzcv_dsel = NZCV_DSEL_RM;
      cpsr_aif_we = {3{~i[22]}} & {i[17], i[16], i[16]};
      cpsr_aif_dsel = AIF_DSEL_RM;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = ~i[22] & i[16];
      cpsr_mode_dsel = MODE_DSEL_RM;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'b0;
      spsr_we = i[22];
      spsr_dsel = SPSR_DSEL_RM;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_MRS]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = ~i[22];
      read_spsr = i[22];
      gpr_we0 = 1'b1;
      gpr_wa0 = i[15:12];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = i[22] ? GPR_DSEL0_EX2_SPSR : GPR_DSEL0_EX2_CPSR;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_UND]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b1;
      read_spsr = 1'b0;
      gpr_we0 = 1'b1;
      gpr_wa0 = 4'b1110;
      gpr_wa0_exc = 1'b1;
      gpr_dsel0_ex1 = GPR_DSEL0_EX1_BL;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_PREV;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b010;
      cpsr_aif_dsel = AIF_DSEL_IMM;
      cpsr_aif_d_imm = 3'bx1x;
      cpsr_mode_we = 1'b1;
      cpsr_mode_dsel = MODE_DSEL_IMM;
      cpsr_mode_d_imm = 5'b11011;
      cpsr_priv = 1'b1;
      spsr_we = 1'b1;
      spsr_dsel = SPSR_DSEL_CPSR;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b1;
      branch_ex1_dest_sel = BR_DEST_EX1_SEL_IMM;
      branch_ex1_dest_imm = 3'b001;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_SWI]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b1;
      read_spsr = 1'b0;
      gpr_we0 = 1'b1;
      gpr_wa0 = 4'b1110;
      gpr_wa0_exc = 1'b1;
      gpr_dsel0_ex1 = GPR_DSEL0_EX1_BL;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_PREV;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b010;
      cpsr_aif_dsel = AIF_DSEL_IMM;
      cpsr_aif_d_imm = 3'bx1x;
      cpsr_mode_we = 1'b1;
      cpsr_mode_dsel = MODE_DSEL_IMM;
      cpsr_mode_d_imm = 5'b10011;
      cpsr_priv = 1'b1;
      spsr_we = 1'b1;
      spsr_dsel = SPSR_DSEL_CPSR;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b1;
      branch_ex1_dest_sel = BR_DEST_EX1_SEL_IMM;
      branch_ex1_dest_imm = 3'b010;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_IRQ]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b1;
      read_spsr = 1'b0;
      gpr_we0 = 1'b1;
      gpr_wa0 = 4'b1110;
      gpr_wa0_exc = 1'b1;
      gpr_dsel0_ex1 = GPR_DSEL0_EX1_BL;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_PREV;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b110;
      cpsr_aif_dsel = AIF_DSEL_IMM;
      cpsr_aif_d_imm = 3'b11x;
      cpsr_mode_we = 1'b1;
      cpsr_mode_dsel = MODE_DSEL_IMM;
      cpsr_mode_d_imm = 5'b10010;
      cpsr_priv = 1'b1;
      spsr_we = 1'b1;
      spsr_dsel = SPSR_DSEL_CPSR;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b1;
      branch_ex1_dest_sel = BR_DEST_EX1_SEL_IMM;
      branch_ex1_dest_imm = 3'b110;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_CPS]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = 1'b0;
      gpr_wa0 = 4'bx;
      gpr_wa0_exc = 1'bx;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = 2'bx;
      gpr_dsel0_wb = 2'bx;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = {3{i[19]}} & i[8:6];
      cpsr_aif_dsel = AIF_DSEL_IMM;
      cpsr_aif_d_imm = {3{i[18]}};
      cpsr_mode_we = i[17];
      cpsr_mode_dsel = MODE_DSEL_IMM;
      cpsr_mode_d_imm = i[4:0];
      cpsr_priv = 1'b0;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_MOVT]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b1;
      rd_sel = i[15:12];
      rd_sel_usr = 1'b0;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = 1'b1;
      gpr_wa0 = i[15:12];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_MOVT;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_MOVW]: begin
      read_rn = 1'b0;
      rn_sel = 4'bx;
      read_rd = 1'b0;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'b0;
      rs_sel = 4'bx;
      read_rm = 1'b0;
      rm_sel = 4'bx;
      read_nzcv = 1'b0;
      read_spsr = 1'b0;
      gpr_we0 = 1'b1;
      gpr_wa0 = i[15:12];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = GPR_DSEL0_EX1_MOVW;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_PREV;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_PREV;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b0;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
    i_instr_class[`INSTR_MRC]: begin
      read_rn = 1'bx;
      rn_sel = 4'bx;
      read_rd = 1'bx;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'bx;
      rs_sel = 4'bx;
      read_rm = 1'bx;
      rm_sel = 4'bx;
      read_nzcv = 1'bx;
      read_spsr = 1'bx;
      gpr_we0 = 1'b1;
      gpr_wa0 = i[15:12];
      gpr_wa0_exc = 1'b0;
      gpr_dsel0_ex1 = GPR_DSEL0_EX1_COP;
      gpr_dsel0_ex2 = GPR_DSEL0_EX2_COP;
      gpr_dsel0_ex3 = GPR_DSEL0_EX3_COP;
      gpr_dsel0_wb = GPR_DSEL0_WB_PREV;
      gpr_we1 = 1'b0;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'b0;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'b0;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'b0;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'b0;
      spsr_dsel = 1'bx;
      ls = 1'b0;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'b0;
      branch_ex1 = 1'b0;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'b0;
      branch_wb_dest_sel = 1'bx;
      mul = 1'b0;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'b1;
      coproc_cp_num = i[11:8];
      coproc_op1 = i[23:21];
      coproc_op2 = i[7:5];
      coproc_crn = i[19:16];
      coproc_crm = i[3:0];
    end
    default: begin
      read_rn = 1'bx;
      rn_sel = 4'bx;
      read_rd = 1'bx;
      rd_sel = 4'bx;
      rd_sel_usr = 1'bx;
      read_rs = 1'bx;
      rs_sel = 4'bx;
      read_rm = 1'bx;
      rm_sel = 4'bx;
      read_nzcv = 1'bx;
      read_spsr = 1'bx;
      gpr_we0 = 1'bx;
      gpr_wa0 = 4'bx;
      gpr_wa0_exc = 1'bx;
      gpr_dsel0_ex1 = 1'bx;
      gpr_dsel0_ex2 = 2'bx;
      gpr_dsel0_ex3 = 2'bx;
      gpr_dsel0_wb = 2'bx;
      gpr_we1 = 1'bx;
      gpr_wa1 = 4'bx;
      gpr_wa1_usr = 1'bx;
      gpr_dsel1 = 1'bx;
      cpsr_nzcv_we = 1'bx;
      cpsr_nzcv_dsel = 2'bx;
      cpsr_aif_we = 3'bx;
      cpsr_aif_dsel = 2'bx;
      cpsr_aif_d_imm = 3'bx;
      cpsr_mode_we = 1'bx;
      cpsr_mode_dsel = 2'bx;
      cpsr_mode_d_imm = 5'bx;
      cpsr_priv = 1'bx;
      spsr_we = 1'bx;
      spsr_dsel = 1'bx;
      ls = 1'bx;
      ls_store = 1'bx;
      ls_addr_offset_sel = 3'bx;
      ls_addr_sel = 2'bx;
      ls_part = 1'bx;
      ls_half = 1'bx;
      ls_ld_sign_ext = 1'bx;
      ls_double = 1'bx;
      lsm = 1'bx;
      branch_ex1 = 1'bx;
      branch_ex1_dest_sel = 2'bx;
      branch_ex1_dest_imm = 3'bx;
      branch_wb = 1'bx;
      branch_wb_dest_sel = 1'bx;
      mul = 1'bx;
      mul_long = 1'bx;
      mul_sign = 1'bx;
      mul_add = 1'bx;
      ext_rot = 2'bx;
      ext_op = 2'bx;
      ext_sign = 1'bx;
      ext_add = 1'bx;
      coproc_sel = 1'bx;
      coproc_cp_num = 1'bx;
      coproc_op1 = 1'bx;
      coproc_op2 = 1'bx;
      coproc_crn = 1'bx;
      coproc_crm = 1'bx;
    end
  endcase
end
endmodule
